Embodiments of the present invention relate to mass storage devices. In particular, the present invention relates to a system and method for storing data for a computer system.
There are many different types of storage mediums and devices that computer systems may use to store data. A computer system typically has more than one storage medium. Generally, computer systems store data both in volatile memories and in non-volatile mass storage devices. Non-volatile mass storage devices do not lose the data stored on them when the power to the computer system is removed or turned off. Thus, a non-volatile mass storage device may store data that the computer system is to retain on a permanent basis. Data stored by computer systems often includes instructions, such as for operating system and application programs, and data that is accessed by these instructions.
Examples of memory types that are typically part of a computer system include Random-Access Memory (RAM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), flash memory, and Electrically Erasable Programmable Read-Only Memory (EPROM). Such memories are often used to store a relatively small amount of data. By contrast, mass storage devices typically store a relatively larger amount of data. Examples of mass storage mediums are floppy disks, hard disks, optical disks, and tapes. Some other examples of mass storage mediums are ZIP disks (e.g., manufactured by Iomega Corporation of Roy, Utah), Jaz disks (e.g., manufactured by Iomega Corporation), Rewritable Digital Versatile Discs (DVD-RAM), Read/Write Compact Disks (CD-RW), optical storage, magneto-optical storage, magnetic storage, and holographic. Mass storage is considered to be non-volatile.
Devices are subsystems in a computer system. Examples of devices include printers, mice and modems as well as mass storage devices such as hard disk drives and tape drives. Most devices require a device driver program that converts general commands from an application program or operating system into specific commands that the device understands.
In the typical arrangement, operating systems access different storage mediums as different address spaces. Typically, mass storage devices contain a single type of storage medium that is viewed by the operating system as a single device. An example of a mass storage device is a hard disk drive that contains a disk storage medium which typically includes platters on a disk spindle. In this example, when the operating system attempts to access (i.e., read from or write to) a memory location that is stored in the hard disk drive device, the operating system directs a command to the device requesting that the memory location be accessed. That is, an operating system may read from (or write to) a location in a hard disk drive by sending a command to the hard disk device driver requesting that a location be read from (or written to). Because the disk drive is viewed as a single device, this command will not specify a storage medium within the hard disk drive which is to be accessed.
Hard disk drives are common because a unit of hard disk storage is relatively cheap (e.g., as compared to a RAM). However, because the access time for a hard disk medium is relatively slow, hard disk drive devices are often a performance bottleneck.